#pragma once

#include "MBCameraModel.h"
#include "MBMatrix4x4.h"
#include "MBVec2.h"
#include "MBVec3.h"

#include <string>

/**
  *	Base class for the used labels in the labeling process
  */
class MBLabel
{
public:
	virtual const MBCameraModel *GetCameraModel( void ) const = 0;
	virtual const std::string &GetImagePath( void ) const = 0;
	virtual const MBVec3 &GetPosition( void ) const = 0;
	virtual const MBVec2 &GetTexcoordShiftVector( void ) const = 0;
	virtual const std::string &GetUndistortedImagePath( void ) const = 0;
	virtual const MBMatrix4x4 &GetWorldSpaceToViewSpaceTransformation( void ) const = 0;
};